package org.design.adapterPattern;

/**
 * AdapterPattern
 * 适配器模式
 * 适配器模式（Adapter Pattern）充当两个不兼容接口之间的桥梁，属于结构型设计模式。
 * 它通过一个中间件（适配器）将一个类的接口转换成客户期望的另一个接口，使原本不能一起工作的类能够协同工作。
 * <p>
 * 这种模式涉及到一个单一的类，该类负责加入独立的或不兼容的接口功能。举个真实的例子，
 * 读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器，再将读卡器插入笔记本，这样就可以通过笔记本来读取内存卡。
 * <p>
 * 假设有一个音频播放器，它只能播放 MP3 文件。现在，我们需要播放 VLC 和 MP4 文件，
 * 可以通过创建一个适配器来实现：
 * <p>
 * 目标接口：定义一个可以播放多种格式文件的音频播放器接口。
 * 适配者类：现有的音频播放器，只能播放 MP3 文件。
 * 适配器类：创建一个新的类，实现目标接口，并在内部使用适配者类来播放 MP3 文件，
 * 同时添加对 VLC 和 MP4 文件的支持。
 *
 * @author 樊温军
 * @date 2025/6/17 上午8:49
 */
public class AdapterPattern {
    public static void main(String[] args) {
        AudioPlayer audioPlayer = new AudioPlayer();
        audioPlayer.play("beyond the horizon.mp3");
        audioPlayer.play("alone.mp4");
        audioPlayer.play("far far away.vlc");
        audioPlayer.play("mind me.avi");
    }
}
